/*
 * @Description: 
 * @Version: V1.0.0
 * @Author: 周艳凯 750419898@qq.com
 * @Date: 2024-02-01 11:53:26
 * @LastEditors: 周艳凯 750419898@qq.com
 * @LastEditTime: 2024-02-04 13:36:36
 * @FilePath: permission.ts
 * Copyright 2024 Marvin, All Rights Reserved. 
 * 2024-02-01 11:53:26
 */
import type { Router, RouteRecordNormalized } from 'vue-router';
import NProgress from 'nprogress'; // progress bar
import { setTitle } from '@/utils/layout'
import "nprogress/nprogress.css"


// import usePermission from '@/hooks/permission';
// import { useUserStore, useAppStore } from '@/store';
// import { appRoutes } from '../routes';
// import { WHITE_LIST, NOT_FOUND } from '../constants';

export default function setupPermissionGuard(router: Router) {
  router.beforeEach(async (to, from, next) => {
    console.log(to,'我是to')
    setTitle(to.name)
    // 进度条
    NProgress.start();
    next()
    // const appStore = useAppStore();
    // const userStore = useUserStore();
    // const Permission = usePermission();
    // const permissionsAllow = Permission.accessRouter(to);
    // if (appStore.menuFromServer) {
    //   // 针对来自服务端的菜单配置进行处理
    //   // Handle routing configuration from the server

    //   // 根据需要自行完善来源于服务端的菜单配置的permission逻辑
    //   // Refine the permission logic from the server's menu configuration as needed
    //   if (
    //     !appStore.appAsyncMenus.length &&
    //     !WHITE_LIST.find((el) => el.name === to.name)
    //   ) {
    //     await appStore.fetchServerMenuConfig();
    //   }
    //   const serverMenuConfig = [...appStore.appAsyncMenus, ...WHITE_LIST];

    //   let exist = false;
    //   while (serverMenuConfig.length && !exist) {
    //     const element = serverMenuConfig.shift();
    //     if (element?.name === to.name) exist = true;

    //     if (element?.children) {
    //       serverMenuConfig.push(
    //         ...(element.children as unknown as RouteRecordNormalized[])
    //       );
    //     }
    //   }
    //   if (exist && permissionsAllow) {
    //     next();
    //   } else next(NOT_FOUND);
    // } else {
    //   // eslint-disable-next-line no-lonely-if
    //   if (permissionsAllow) next();
    //   else {
    //     const destination =
    //       Permission.findFirstPermissionRoute(appRoutes, userStore.role) ||
    //       NOT_FOUND;
    //     next(destination);
    //   }
    // }
    // NProgress.done();
  });
  // 路由结束
  router.afterEach(() => {
    NProgress.done()
  })
}
